#oop 学生对象

# 可以自由地给一个实例变量绑定属性
# 在Python中，实例的变量名如果以__开头，就变成了一个私有变量（private），只有内部可以访问，外部不能访问
class Student(object): #(object)，表示该类是从哪个类继承下来的

    __shcool='guet'

    def __init__(self,name,socre):
        self.__name=name
        self.__socre=socre

    def log(self):
        print('name : %s \nsocre : %s'%(self.__name,self.__socre))

    def set_name(self,name):
        self.__name=name

    def get_name(self):
        return self.__name

    def get_school(self):
        return self.__shcool




student1=Student('huangxl',99)

student1.log()

student2=Student('gouyd',99)
student2.log()

student2.like='xis'

print(student2.like)
print(student2.get_school())

# like双下划线开头的实例变量是不是一定不能从外部访问呢？其实也不是。
# 不能直接访问__name是因为Python解释器对外把__name变量改成了_Student__name，
# 所以，仍然可以通过_Student__name来访问__name变量

